---
title: Permissionless Pool Creation
description: Learn how to create a pool permissionlessly.
keywords: [ pool, create pool, permissionlessly, permissionless, SUI, USDC, SUI/USDC, DEEP price point, MIST ]
---

The `Pool` shared object represents a market, such as a SUI/USDC market. That `Pool` is the only one representing that unique pairing (SUI/USDC) and the pairing is the only member of that particular `Pool`. See [DeepBookV3 Design](./design.mdx#pool) to learn more about the structure of pools.

## API

### Create a `Pool`

The `create_permissionless_pool()` function creates a `Pool`

<ImportContent source="packages/deepbook/sources/pool.move" mode="code" org="MystenLabs" repo="deepbookv3" fun="create_permissionless_pool" noComments />

Tick size should be 10^(9 - base_decimals + quote_decimals - decimal_desired). For example, if creating a SUI(9 decimals)/USDC(6 decimals) pool, with a desired decimal of 3 for tick size (0.001), tick size should be 10^(9 - 9 + 6 - 3) = 10^(3) = 1000.

Decimal desired should be at most 1bps, or 0.01%, of the price between base and quote asset. For example, if 3 decimals is the target, 0.001 (three decimals) / price should be less than or equal to 0.0001. Consider a lower tick size for pools where both base and quote assets are stablecoins.

Lot size is in MIST of the base asset, and should be approximately &dollar;0.01 to &dollar;0.10 nominal of the base asset. Lot size must be a power of 10, and less than or equal to min size. Lot size should also be greater than or equal to 1,000.

Min size is in MIST of the base asset, and should be approximately &dollar;0.10 to &dollar;1.00 nominal of the base asset. Min size must be a power of 10, and larger than or equal to lot size.

Creation fee is 500 DEEP tokens.

:::info

Pools can only be created if the asset pair has not already been created before.

:::

### Add DEEP price point

The `add_deep_price_point()` function allows for the calculation of DEEP price and correct collection of fees in DEEP.

<ImportContent source="packages/deepbook/sources/pool.move" mode="code" org="MystenLabs" repo="deepbookv3" fun="add_deep_price_point" noComments />

All pools support input token fees. To allow a permissionless pool to pay fees in DEEP, which has a 20% discount compared to input token fees, two conditions must be met:

1. Either the base or quote asset must be `USDC` or `SUI`.
2. To calculate DEEP fees accurately, you must set up a cron job to call the `add_deep_price_point()` function on the pool every 1-10 minutes.

For a pool with `USDC` as an asset, use the `DEEP/USDC` pool at `0xf948981b806057580f91622417534f491da5f61aeaf33d0ed8e69fd5691c95ce` as the reference pool.

For a pool with `SUI` as an asset, use the `DEEP/SUI` pool at `0xb663828d6217467c8a1838a03793da896cbe745b150ebd57d82f814ca579fc22` as the reference pool.

### Update allowed versions

The `update_allowed_versions()` function takes a pool and the registry, and updates the allowed contract versions within the pool.
This is very important after contract upgrades to ensure the newest contract can be used on the pool.

<ImportContent source="packages/deepbook/sources/pool.move" mode="code" org="MystenLabs" repo="deepbookv3" fun="update_allowed_versions" noComments />

## Related links

<RelatedLink href="https://github.com/MystenLabs/deepbookv3" label="DeepBookV3 repository" desc="The DeepBookV3 repository on GitHub." />